Providing services to groups of subscribers

ABSTRACT

A communications system for providing services to communication terminals, each terminal being addressable by means of an address, the communications system comprising: a service provision unit for providing services to the terminals; and a service data storage unit for storing a set of service provision definitions, each service provision definition comprising a service field storing an indication of a service and an address field storing an expression specifying the address of one or more of the terminals; and a service logic unit arranged to receive communications in the system and compare an address specified in a communication with the expressions stored in the address field of each of the service provision definitions and on the basis of that comparison causing the service provision unit to provide a service to the terminal identified by the said address.

[0001] This invention relates to providing services in a communicationssystem, and especially to providing services to groups of subscribers.

[0002] The operator of a communication system such as a mobile telephonenetwork can provide services to subscribers to the system. Individualsubscribers may choose to pay for different services. In addition,services may be provided to groups of subscribers, either as a result oftheir having subscribed jointly to those services, or otherwise: forexample as a promotion directed to a group of subscribers. Such servicesare typically, but not necessarily, provided by way of an intelligentnetwork arrangement,

[0003] The provision of some services may be initiated by a call fromthe subscriber's terminal. Examples of those services are weatherreports and sending of e-mails. The provision of other services may beinitiated by a call to the subscriber's terminal. Examples of thoseservices are call diversion and voice mail.

[0004] When a call is being processed by the network, the network mustdecide whether the relevant service can be provided in that instance. Todo this it must check whether the subscriber in question is allowed toreceive the service. One way to do this is to query the account detailsstored for the subscriber. However, if that system is adopted it ishighly inconvenient to configure the system to provide or denyadditional services to groups of subscribers since the account detailsof each of the subscribers in the group must be altered. For example, itcan be envisaged that as a promotional offer companies may wish toprovide groups of subscribers with access to a service for a shortperiod. In the arrangement outlined above, the accounts of all thesubscribers in the group would have to be modified to permit the serviceto be provided, and then when the promotion expired they would all haveto be modified again to deny the service.

[0005] There is a need for an improved system for determining whichsubscribers are to be provided with services.

[0006] According to one aspect of the present invention there isprovided a communications system for providing services to communicationterminals, each terminal being addressable by means of an address, thecommunications system comprising: a service provision unit for providingservices to the terminals; and a service data storage unit for storing aset of service provision definitions, each service provision definitioncomprising a service field storing an indication of a service and anaddress field storing an expression specifying the address of one ormore of the terminals; and a service logic unit arranged to receivecommunications in the system and compare an address specified in acommunication with the expressions stored in the address fields of eachof the service provision definitions and on the basis of that comparisoncausing the service provision unit to provide a service to the terminalidentified by the said address.

[0007] Preferably at least one of the said service provision definitionsstores an expression specifying the address of more than one terminal.Most preferably the said expression is a wildcard expression.Alternatively, or in addition, the expression may take the form of alist of addresses or wildcard expressions. The said expression suitablydefines a set of numerically contiguous addresses, most preferably a setof addresses of which the first part of each is the same.

[0008] Suitably each address is a number. For example, each address maycomprise be or may comprise an MSISDN.

[0009] The communication may, for example, be a voice and/or text and/orvideo communication.

[0010] The terminals may be mobile stations.

[0011] The service provision unit is preferably capable of providing aservice whereby part or all of the charge of the call is directed to asponsoring party distinct from the subscribers of the terminals. In thatway a person may conveniently sponsor the cost of the call.

[0012] The service logic unit is suitably arranged to, if the saidaddress matches the expression stored in the address field of any of theservice provision definitions, cause the service provision unit toprovide the service indicated in that definition. Alternatively, theservice logic unit may be arranged to, if the said address matches theexpressions stored in the address field of more than one of the serviceprovision definitions, prioritise the services indicated in thosedefinitions according to predetermined rules and on the basis of thoserules cause the service provision unit to provide a subset of theservices indicated in those definitions. The service logic unit may bearranged to cause the service provision unit to provide theservice/services indicated in that/those definitions to a party to thecommunication.

[0013] The service logic unit may be arranged to compare the address ofthe originating party of the communication with the expressions storedin the address fields of each of the service provision definitions andon the basis of that comparison causing the service provision unit toprovide a service to the terminal identified by the said address. Thesaid address is suitably an A number.

[0014] The service logic unit may be arranged to compare the address ofthe terminating party of the communication with the expressions storedin the address fields of each of the service provision definitions andon the basis of that comparison causing the service provision unit toprovide a service to the terminal identified by the said address. Thesaid address may be a B number.

[0015] Preferably the communications system accords to the GSM standardor a derivative thereof.

[0016] The present invention will now be described by way of examplewith reference to the accompanying drawings, in which

[0017]FIG. 1 illustrates a communications system according to thepresent invention;

[0018]FIG. 2 illustrates subsystem interaction;

[0019]FIG. 3 illustrates a search for subscriber's ProvisionId;

[0020]FIG. 4 illustrates group member search;

[0021]FIG. 5 illustrates a possible short number search;

[0022]FIG. 6 illustrates a member analysis process; and

[0023]FIG. 7 illustrates a member found process for number translation.

[0024] The present invention will be described with reference to a GSM(Global System for Mobile Communications) system, but the presentinvention is not limited to such systems. In the GSM system, when a callis made from one terminal to another the number of the calling terminalis termed the A number and the number of the called terminal is termedthe B number. In the GSM system, “numbers” of this type are MSISDNnumbers, which are carried in a-call as part of a “long number”.Analogous subscriber identifiers are used in other systems.

[0025] When a call is made, the call data includes the A number and theB number. Those numbers are therefore available for analysis todetermine whether services should be provided as a result of the call.

[0026]FIG. 1 illustrates a communications system according to thepresent invention. The system includes a number of terminals 1-5 whichare capable of wireless communication with network-side units indicatedgenerally at 6. The network-side units include an MSC (mobile switchingcentre) 7, at least one service provision unit 8 and a service controlblock 9. The service control block includes a service database 10 and aservice logic unit 11. The service control block is connected to the MSC7 to receive call data from the MSC, and to the service provision unit 8for causing the service provision unit to provide services.

[0027] When the MSC 7 receives a call in response to which a service mayneed to be provided, data on the call is sent to the service controlsubsystem. That data includes at least one of the A and the B subscribernumbers. At the service control subsystem the service database stores aset of definitions which together define what services may be providedto which terminals. Each definition includes an indication of theservice to which it relates (or of more than one service) and anexpression indicating one or more subscriber numbers. The subscribernumber(s) are tested against the expression in the definitions todetermine whether a service may be provided to the call (e.g. voicemail) or in response to the call (e.g. a weather report). If thedefinitions indicate that a service can be provided then the servicecontrol subsystem authorises the service provision unit to provide theservice. If more than one service can be provided then they areprioritised according to a predetermined hierarchy, so no all theservices that are matched have to be provided.

[0028] Since an expression can indicate more than one subscriber numberit is easy to configure the service control subsystem to permit theprovision of services to a group of terminals.

[0029] The implementation of the present invention will now be describedin more detail.

[0030] This implementation illustrates the application of the aboveprinciple to the allocation of services corresponding to a VPN (virtualprivate network) or PBX (private branch exchange). Often subscribernumbers within a VPN or PBX will have digits in common (usually theirinitial digits) with the specific numbers within the VPN or PBX beingidentified by other digits (usually the final digits). It isparticularly easy to form an expression for a service definition thatdefines such a group, since the definition needs only to refer to thecommon digits. It will be appreciated that more complex forms ofdefinition could be used to define groups of non-contiguous numbers.Groups that are unrelated to VPNs or PBXs could be defined.

[0031] In a preferred embodiment at least one of the definitions doesinclude an expression that specifies more than one subscriber number.One simple way to specify more than one subscriber is to use wildcardsin the expression. Thus, the expression “+35840*” specifies a group ofnumbers all of which begin +35840, such as +3584012345 and +3584098765.Another way to express a contiguous group of numbers is by specifyingthe uppermost and lowermost numbers of the group. Alternatively, a groupcould be specified as a list of numbers and/or wildcard expressions.

[0032] Where the service definitions indicate that more than one servicemay be provided on the basis of one or both of the A and B numbers, aselection may be made between those services on the basis of apredetermined set of priorities. For example, if the analysis indicatesthat a plurality of tariffs may be applied to the call then thepriorities may indicate that the lowest of those tariffs is to beapplied to the call.

[0033] In some circumstances a service, such as a reduced tariff may beapplicable only if both the A and B subscribers are members of a commongroup. One example of this is where a company has arranged a reducedtariff for calls between its employees.

[0034] This description covers the implementation principles of featuresto support the feature of “VPN Large Number Ranges/PBX support”. Thisfeature enables provisioning of IN services to number ranges andperformance improvements for calls originated by a PBX which may sendincomplete digits of the destination number/address or from which thedestination digits may be delayed beyond initial digits of the address.

[0035] The VPN is becoming a more and more widely used IN service in themarket. A VPN service is typically targeted to corporate customers whichmay have PBXs serving thousands of subscribers. This means that when allPBX extension numbers should have VPN service, in prior art solutionsall extension numbers are needed to be provisioned one by one. Thisrequires lot of time for routing and space in the address database. Thepresent feature enables only one entry to provision VPN services to thewhole PBX or for a certain number range in the domain of the PBX.

[0036] In this description, the term subsystem refers to a part of thesystem that has its own separately definable function. Subsystems can bedivided further into program blocks. The notation short number 74* or 74indicates a short number range (by the starting digits of the shortnumber). The notation long number 35832574* or 35832574 indicates adirectory number range (by the starting digits of the directory number).

[0037] The present feature represents an extension to the current INconcept. The extension is such that a number range is considered as asubscriber. Thus, all operations that can be performed for individualsubscribers, can be performed for number ranges as well. Performanceimprovement is achieved with more efficient search algorithm and morespecific configuration of group member numbers.

[0038] Number ranges are defined as group members in the group, with theexception that number ranges contains number translations rule. Withthis number translation rule it is possible to resolve the long numberbased on the prefix of a short number and vice versa. The followingexample illustrates the idea of the number translation:

[0039] There is a PBX that has short numbers from 77000 to 77999.Respectively, short numbers are converted into long numbers in a waythat 77000 is converted to 35832577000, 77001 to 35832577001 etc.Respectively, long numbers are converted into short numbers in the sameway. Thus, the number translation is described as follows:

[0040] 77<=>35832577

[0041] If the length of the short number is 5, e.g. called short number77404 the number is translated to 35832577404, so the 77 is cut from thebeginning of the called number and the rest is pasted to after the longnumber.

[0042]FIG. 2 shows the basic architecture of the system according to thepresent example. Preferred features of the system for implementing thepresent invention are:

[0043] 1. The service logic must be able to form directory numbers fromthe short numbers inside a number range according to the numbertranslation rule.

[0044] 2. The service logic must be able to form short numbers from thedirectory numbers inside a number range according to the numbertranslation rule.

[0045] 3. It must be possible to define that calls made by directorynumbers to the group members inside number ranges are handled as anon-net calls.

[0046] 4. The service logic must be able to handle services provisionedto the number ranges in the same way as the services provisioned to theindividual subscribers according to the priorities of the services andnormal interaction rules. Services are always executed for the mostaccurate found subscriber number.

[0047] 5. The subscriber can have both individual and number rangeservices provisioned. These services are handled normally accordingpriorities and interaction rules.

[0048] 6. If the same service is provisioned to the individualsubscriber and the number range including this subscriber only theindividual service is executed.

[0049] 7. If the subscriber has been defined to be the group member bothindividually and inside some number range only the individual values areused (e.g. class information). The individual member must exist in thegroup and the service needs to be provisioned to this number. Always themost accurate number is found from provisioning data and group memberdata.

[0050] 8. The service logic must be able to handle number ranges definedwith a wild card. The maximum number of digits which can be replacedwith the wild card is at least four. So the number range 35832577*includes:

[0051] 358325770-358325779

[0052] 3583257700-3583257799

[0053] 35832577000-35832577999

[0054] 358325770000-358325779999

[0055] No wild cards used. Same functionality still achieved. The amountof replaceable digits is not restricted.

[0056] 9. There can not be several overlapping number ranges in onegroup. There can be subgroups. The most accurate number range whichmatches is used.

[0057] 10. If the subscriber language has been defined for an individualsubscriber, it is always used instead of language given for the numberrange in the service provisioning. The service needs to be provisionedto the individual subscriber.

[0058] 11. The same handling of number ranges must be able to be usedalso in CAMEL services.

[0059] 12. The group administrator must be able to modify class of thenumber range. Group administrator is able to change class of the numberrange via iSMAP (internet enabled Service Management Access Point). Thegroup administrator must be able to modify the short number part innumber translation rule of number range. For example group administratorcan change translation rule of number range:

[0060] Change: 77*->358 3 257 7*

[0061] To: 45*—>358 3 257 7*

[0062]  It must be restricted that only the short number can be changedby the group administrator.

[0063] 13. The group administrator must not be able to modify thedirectory number part in number translation rule of the number range.

[0064] 14. When the group administrator browse the groups and groupmembers one number range is handled as one entry, just like individualsubscriber.

[0065] 15. If the result of a sea, ch made by the group administrator(e.g. according to the class) is a number range and there is a groupmember inside that number range having individual definitions so thatthe individual group member is not included to the search (e.g. hasdifferent class than the number range) a notification has to be given tothe group administrator, so that administrator can decide for possiblefurther actions.

[0066] 16. The service provider must be able to use a wild card in theprovisioning and group definition to define numbers ranges. The maximumnumber of digits which can be replaced with the wild card is at leastfour. So the number range 35832577* includes:

[0067] 358325770-358325779

[0068] 3583257700-3583257799

[0069] 35832577000-35832577999

[0070] 358325770000-358325779999

[0071] 17. The service provider must be able to add number ranges to thegroup and define individual translation rule for every number range.There can exist translation rule for each number range inside one group.

[0072] 18. It should not be possible to define overlapping number rangesin one group. Though the same number range can be a member in severaldifferent groups.

[0073] 19. It should be possible to add an individual group member tothe same group with number ranges. Individual group member can overlapwith number range inside the same group.

[0074] 20. The number range is handled as an individual group member,when defining and handling the group.

[0075] 21. The number range is handled as individual subscriber inprovisioning.

[0076] 22. The service provider must be able to provision the sameservice to individual subscribers and number ranges including thesubscriber. If the subscriber should have some individual data theservices must be provisioned to this subscriber individually.

[0077] 23. The service provider must be able to provision both numberrange and individual services to the subscribers.

[0078] 24. It should not be possible to use overlapping number rangesregardless of services in provisioning.

[0079] 25. The group members inside the number ranges are always actualgroup members. The number ranges can not be used when virtual groupmembers are defined. The virtual group members must be added to thegroup one by one.

[0080] The service logic is able to handle services which areprovisioned to number ranges. A number range is treated like asubscriber. A number range can have group services or individualservices provisioned. It should be possible to have subgroups andindividual subscribers having services provisioned to them inside thenumber range. This can be achieved so that the services are alwaysexecuted to the most accurate number found from tables of“DirectoryNumber” and “DirNumRange”. For example if subscriber A whichis number range (=35832577) has service S1 provisioned. Subscriber Bwhich is number range (=358325771) and subgroup of A and has service S2provisioned. The subscriber number calling is 35832577105 and the mostaccurate number range 358325771 service S2 is executed.

[0081] The DirNumRange table is read only if the ServiceKey contains bit17 with value 1. When triggering happens the subscribers ProvisionId canbe found in the following way, as described with reference to FIG. 3.

[0082] A subscriber is searched from DirectoryNumber table with callingnumber in originating services and with called number in terminatingservices. If number is found from the DirectoryNumber table, the servicelogic continues the execution as in J4. If the number is not found theServiceKey 17 bit is checked. If the. 17 bit has value 0 the subscriberhas no IN services and it is treated as in J4.

[0083] If the 17 bit has value 1 the DirNumberConfData is read withprimarykey(1).

[0084] DirNumberRange is read with AnalysisMinLen amount of digits ofthe calling or called number.

[0085] If matching row cannot be found, the service logic continues theexecution as in J4 when the subscriber cannot be found from thedatabase.

[0086] If matching row can be found the MoreDigitsMask is checked if the4 bit has value 0, then more digits are needed to be checked. Then it ischecked if current digits and digits value of bits 0-3 is less or equalthan available digits. If yes then the number length is known. Then itis needed to be checked that current digit summed with defined digits inMoreDigitsMask is smaller than AnalysisMaxLen. If yes the number rangecan be searched with current digits summed with defined digits inMoreDigitsMask. If the length of the calling or called number is shorterthan defined or AnalysisMaxLen is exceeded then the service logiccontinues the execution as in J4 when the subscriber cannot be foundfrom the database.

[0087] If matching row can be found the MoreDigitsMask is checked if the4 bit has value 1, then this row is potential number range subscriberand it is stored into the memory. Then it is checked if the value ofbits 0-3 if the value is bigger than 0. If yes then the number length isknown and that amount of digits can be added to the current digitsnumber in previous search to find the row from DirNumberRange table.

[0088] If matching row can be found the MoreDigitsMask is checked if the4 bit has value 1, then this row is potential number range subscriberand it is stored into the memory. Then it is checked if the value ofbits 0-3 the value is bigger than 0. If no then the number in this rowis the number range subscriber and the service logic continues theexecution as in J4 with individual subscriber.

[0089] If matching row has been found once and that was stored intomemory and more deeper number range was searched and was not found thestored row contains the number range subscriber information and theservice logic continues the execution as in J4 with individualsubscriber.

[0090] Data on the group and group member are stored into new tablesGroupConfData, NewGroupMember, MemberAnalysis and ShortNumberAnalysis ifnew structure is wanted to be used. Group and group members can existsin these new tables only if from GroupConfData can be found a row withthe GroupId in question. The GroupId can have been found in theconventional way from ServicesOfSubscriber table after the subscriberhas been found. The most accurate number is found from the serviceprovision data and the group member data both with short numbers anddirectory numbers.

[0091] FIGS. 4 to 7 illustrate how it is checked if a calling or calledparty is the member of the group.

[0092] Referring to FIG. 4,

[0093] using the GroupId found from ServicesOfSubscriber table as aprimarykey the GroupConfData is read. If the row is not found, thenconventional techniques to determine which service to provide can thenbe used. If the row is found the configuration data is read and storedfor later usage.

[0094] Then it is checked whether the service started in OBCSM. If nothe search continues in the Member analysis. If yes the B-number isanalysed.

[0095] The B-number analysis should return the called number ininternational format, if the calling party is mobile and information ifthe number is long for sure. (Long for sure is e.g. number received fromMSC/SSP in international format.)

[0096] Then it is checked if the number is long for sure. If no analysisis continued in Possible short. If yes it is checked if Forced On-netShort Numbers service parameter FDE is selected into the service. If nothe call is Off-net call and this feature is not interested of thenumber anymore. If yes the analysis is continued in the Member analysis.

[0097] Possible short returns information if the member was found withshort number and the member type (actual or not).

[0098] If the member is not found with short execution returns tochecking of usage of Forced On-net Short Numbers.

[0099] If member is found it is checked if the member is actual or not.If the member is actual the call is interpreted to be On-net call, shortnumbers used and that information is transferred to Member found inneeded point.

[0100] If member is found and the member is not actual the call isinterpreted to be call to virtual member with short number and thatinformation is transferred to Member found in needed point.

[0101]FIG. 5 shows a possible short number search and is explainedbelow:

[0102] First it is checked if the calling party is mobile.

[0103] If yes the NewGroupMember table is read using the called numberreceived in InitialDp. If the member is found, then is checked themember type of the member and that information with found with short isreturned. If no continued as in 3.

[0104] Then it is checked if the ShortMinLen is less or equal than theavailable digits. If no required digits are asked from the switch. Afterdigits are received execution continues in 4.

[0105] if yes the ShortNumberAnalysis table is read by using ShorLMinLendefined amount digits as primarykey.

[0106] If matching row can be found the MoreDigitsMask is checked if the4 bit has value 0, then more digits are needed to be checked. Then it ischecked if current digits and digits value of bits 0-3 is less or equalthan available digits. If yes then the number length is known. Then itis needed to be checked if current digits+MoreDigits is less or equalthan available digits. If yes the number range can be searched withcurrent digits summed with defined digits in MoreDigitsMask. If no moredigits are asked from the switch.

[0107] If matching row can be found the MoreDigitsMask is checked if the4 bit has value 1, then this row is potential member and it is storedinto the memory. Then it is checked if the value of bits 0-3 if thevalue is bigger than 0. If yes then the number length is known and thatamount of digits can be added to the current digits number in previoussearch to find the row from NewGroupMember table.

[0108] If matching row can be found the MoreDigitsMask is checked if the4 bit has value 1, then this row is potential number range subscriberand it is stored into the memory. Then it is checked if the value ofbits 0-3 the value is bigger than 0. If no then this number is used asprimarykey to find the member from NewGroupMember.

[0109] If matching row has been found once and that was stored intomemory and more deeper number range was searched and was not found thestored row contains the number in memory is used as primarykey to findthe member from NewGroupMember.

[0110] If member is found then is checked that the length of theshortnumber is equal to ShortNumLen. If yes then this number is a memberand member type of the member and information found with short isreturned. If no then this is not short number and not found and notactual is returned.

[0111] For Translation and CLI modification when a group member has beenfound, the group member must be able to find even the members numberrange. These number ranges have translation rules from directory numberto short number and vice versa. The translation rule is defined in thedatabase table NewGroupMember, there is the field IsTranslation whichdefines if the translation rule exists or not. Translation rule itselfcontains information in field Number (short number), LongNumber (numberrange) and ShortNumLen. Number field defines which part of the shortnumber is replaced with Information in LongNumber. The ShortNumLen fieldtells then the length of the short number and so defines that onlycorrect length numbers are converted from short to long and LongNumLendefines the same for long numbers. For example if following data can befound from the database Member GroupId Number LongNumber TypeIsTranslation ShortNumLen LongNumLen 1 74 35832574 Actual Yes 5 11

[0112] VPN group member A calls to group member B with 74234.

[0113] B is found to be a group member. It is checked that called shortnumber has the same length as defined in the database.

[0114] From short number 74234 from the beginning is removed Number 74and the rest (234) is pasted to the end of LongNumber. It is checkedthat length of the number is 11.

[0115] The number in Connect is then 35832574234.

[0116]FIG. 7 shows a more generic view.

[0117] It is greatly preferred that always the most accurate directorynumber or directory number range must be found together with theProvisionId for that subscriber. Number range is treated as subscriberand has all information of the subscriber in the subscriber table.

[0118] As regards implementation, the basic idea is that each numberrange is seen as an individual subscriber or group member and all thatcan be done in respect of the subscriber or group member should becapable of being done in respect of a number range. Tool kit tools mustsupport both old database structure and this new structure. Group membercan belong to both structures inside the same SCP, then of course thegroup member must be a member of two different groups. Members of thesame group can belong only to old structure or new, but not both. Theservices are executed always to the most accurate number and the groupmember is found always with the most accurate number possible.

[0119] When a service provider wants to create a group with a numberrange the configuration data can be stored first. Then the number rangegroup member is entered as one row entry, all old data of the groupmember is of course entered also e.g.: Long Short Long number Shortnumber number length number length Translation 35832577 11 77 5 Yes35832577066 11 77066 5 No 358325772 11 772 5 Yes 358405722977 12 88742347 No

[0120] When group members are listed/browsed the number range is seen asone entry. SMI should take care of inserting required digits intoanalysis tables. The most accurate member should be on top of listingwhen group is browsed after saving.

[0121] The service provider must be able to provision services to numberranges. There can exists overlapping number ranges, same number rangecan exists with only one ProvisionId like individual subscriber.Originating services and Terminating services can be provisioned tonumber range subscriber, but not Universal Access or Location Updateservices.

[0122] Before the number range can be provisioned the DirNumberConfDatamust be configured. This can be done with Provision Tool and onlynetwork operator is allowed to execute this configuration. Thisconfiguration data is required before provisioning because that data isneeded to fill the database so that there does not exist gaps.

[0123] If it is wanted that sub group or individual subscriber hasdifferent services or different provisioning values than the serviceprovisioned to the number range within the sub group or individualsubscriber belongs to. These services must be provisioned individuallyto the sub group or to the individual subscriber. For example if numberrange 35832577 has service S1 and individual subscriber 35832577066 needto have different announcement in service S1, this service S1 must beprovisioned to this individual subscriber and this individual subscriberis not any more affected with changes of provisioning data of the numberrange.

[0124] SMI should take care of inserting required digits into analysistables. The most accurate member should be on top of listing whensubscribers are browsed after saving.

[0125] A SMAP (Service Management Access Point) web subsystem may beprovided. Then preferably new information about the groups can beentered via SMAP web. All information must be able to be entered intoGroupConfData table. If the groups are wanted to use this VPN largenumber or PBX support function it must be decided before group membersare entered into the group. So there must exist selection if new or oldstructure is used in this group. The group configuration data must alsobe entered before entering group members, because the MemberAnalysis andShortNumberAnalysis tables are filled with required digits to avoid gapsand the configuration data is used there. This avoiding of gap ensuresthe effective service logic functionality. If there exists gaps thesearching of group members in service logic won't work as described inprevious chapters. iSMAP must support both old database structure andthis new structure. Group member can belong to both structures insidethe same SCP, then of course the group member must be a member of twogroups. Members of the same group can belong only to old structure ornew, but not both

[0126] The applicant draws attention to the fact that the presentinvention may include any feature or combination of features disclosedherein either implicitly or explicitly or any generalisation thereof,without limitation to the scope of any of the present claims. In view ofthe foregoing description it will be evident to a person skilled in theart that various modifications may be made within the scope of theinvention.

1. A communications system for providing services to communicationterminals, each terminal being addressable by means of an address, thecommunications system comprising: a service provision unit for providingservices to the terminals; and a service data storage unit for storing aset of service provision definitions, each service provision definitioncomprising a service field storing an indication of a service and anaddress field storing an expression specifying the address of one ormore of the terminals; and a service logic unit arranged to receivecommunications in the system and compare an address specified in acommunication with the expressions stored in the address fields of eachof the service provision definitions and on the basis of that comparisoncausing the service provision unit to provide a service to the terminalidentified by the said address.
 2. A communications system as claimed inclaim 1, wherein at least one of the said service provision definitionsstores an expression specifying the address of more than one terminal.3. A communications system as claimed in claim 2, wherein the saidexpression is a wildcard expression.
 4. A communication system asclaimed in claim 2 or 3, wherein the said expression defines a set ofnumerically contiguous addresses.
 5. A communication system as claimedin any of claims 2 to 4, wherein the said expression defines a set ofaddresses of which the first part of each is the same.
 6. Acommunications system as claimed in any preceding claim, wherein eachaddress is a number.
 7. A communications system as claimed in claim 6,wherein each address is or comprises an MSISDN.
 8. A communicationssystem as claimed in any preceding claim, wherein the communication is avoice communication.
 9. A communications system as claimed in anypreceding claim, wherein the terminals are mobile stations.
 10. Acommunications system as claimed in any preceding claim, wherein theservice provision unit is capable of providing a service whereby thecharge of the call is directed to a sponsoring party distinct from thesubscribers of the terminals.
 11. A communications system as claimed inany preceding claim, wherein the service logic unit is arranged to, ifthe said address matches the expression stored in the address field ofany of the service provision definitions, cause the service provisionunit to provide the service indicated in that definition.
 12. Acommunications system as claimed in any of claims 1 to 10, wherein theservice logic unit is arranged to, if the said address matches theexpressions stored in the address field of more than one of the serviceprovision definitions, prioritise the services indicated in thosedefinitions according to predetermined rules and on the basis of thoserules cause the service provision unit to provide a subset of theservices indicated in those definitions.
 13. A communications system asclaimed in claim 11 or 12, wherein the service logic unit is arranged tocause the service provision unit to provide the service/servicesindicated in that/those definitions to a party to the communication. 14.A communications system as claimed in any preceding claim, wherein theservice logic unit is arranged to compare the address of the originatingparty of the communication with the expressions stored in the addressfields of each of the service provision definitions and on the basis ofthat comparison causing the service provision unit to provide a serviceto the terminal identified by the said address.
 15. A communicationssystem as claimed in claim 14, wherein the said address is an A number.16. A communications system as claimed in any preceding claim, whereinthe service logic unit is arranged to compare the address of theterminating party of the communication with the expressions stored inthe address fields of each of the service provision definitions and onthe basis of that comparison causing the service provision unit toprovide a service to the terminal identified by the said address.
 17. Acommunications system as claimed in claim 16, wherein the said addressis an B number.
 18. A communications system as claimed in any precedingclaim, which accords to the GSM standard or a derivative thereof.